package cc.jq1024.domain.strategy.service.armory;

import java.util.Date;

/**
 * @Author: jia-qiang ljq1024.cc
 * @desc: 策略抽奖调度
 * @Date: 2024-04-13-14:36
 */
public interface IStrategyDispatch {

    /**
     * 随机获取查找表中获取抽奖奖品ID -> 没有装配权重的情况
     */
    Long getRandomAwardId(Long strategyId);

    /**
     * 随机获取查找表中获取抽奖奖品ID -> 装配权重的情况
     */
    Long getRandomAwardId(Long strategyId, String ruleWeightValue);

    /**
     * 根据策略ID和奖品ID，扣减奖品缓存库存
     *
     * @param strategyId  策略ID
     * @param awardId     奖品ID
     * @param endDateTime 活动结束时间
     * @return 扣减结果
     */
    Boolean subtractionAwardStock(Long strategyId, Long awardId, Date endDateTime);

}
